package com.fxkj.cloud.drms.domain.linkage;

import com.fxkj.cloud.dbs.common.model.command.DeviceKvSet;
import com.fxkj.cloud.dbs.common.model.kv.TsKvEntry;
import com.google.common.util.concurrent.ListenableFuture;

import java.util.List;
import java.util.UUID;

/**
 * <p>description: </p>
 * @author ww
 * @date 2025/3/28 13:49
 */
public interface FxProcessor {

    /**
     * 处理设备数据
     * @param deviceId
     * @param deviceKvs
     * @return
     */
    void processor(UUID deviceId, List<TsKvEntry> deviceKvs);

    /**
     * 执行动作
     * @param deviceKvs
     * @return
     */
    ListenableFuture<Object> execute(List<TsKvEntry> deviceKvs);

    /**
     * 销毁处理器
     */
    ListenableFuture<List<Object>> destroy();
}
